import { Button } from 'antd'
// 聚合参数
// 0:无聚合 
// 1:返回组中数值的总和。 
// 2:返回组中非 null 值的计数。 
// 3:返回组中数值的平均值。 
// 4:返回组中的最大值。 
// 5:返回组中的最小值。
// 6:返回组中最大值和最小数值之间的差值。

// 7:返回组中数值的样本标准差 （使用基于 n-1 的公式）。
// 8:返回组中数值的样本方差 （使用基于 n-1 的公式）。
// 9:返回组中值的总体标准差 （使用基于 n 的公式）。
// 10:返回组中值的总体方差 （使用基于 n 的公式）。
// 11:返回组中所有值（包括 null）的计数。
// 12:返回组中的第一个非 null 值。
// 13:返回组中的最后一个非 null 值。

const A01 = async () => {
    return ({
        url: 1000, // 临时获取数据
        classification: 'Base', // 页面类型选择
        initParameter: {    // 初始化函数
            // 分组逻辑 Ps:必填 可为[]
            group: [],
            // 排序逻辑 Ps:必填 可为[] 配合allowSorting 可锁死某项排序
            sort: [],
            // 拖动分组
            groupPanel: true,
            // 过滤器
            filter: true,
            // // 添加页头
            // addTop: true,
            // // 添加页脚
            // addBtm: true,
            // 页脚聚合 Ps:如何添加页脚同时使用,会直接执行聚合.(不开启添加页脚也可)
            addSum: true,
            // 添加第一列索引
            addIndex: true,
            // // 索引编辑样式 Ps:开启索引后不会出现默认样式
            // modifyText: '...',
            // 页头字符
            topText: 'Ω',
            // 页脚字符
            btmText: 'Ψ',
        },
        configuration: {// 基础配置
            // 禁止排序操作 None:禁用 SingleColumn:单排 MultiColumn:多排 
            allowSorting: 'MultiColumn',
            // // false    禁止改变大小
            // allowResizing: false,
            // // false    禁止拖动列
            // allowDragging: false,
            // true     只读   
            isReadOnly: true,
            // // 固定列方式 None:非固定,SingleColumn:单行固定,ColumnRange:多行固定
            // allowPinning: 'None',
            // // 屏蔽第一列  
            // headersVisibility: 'Column',
            // 表单选中 0:禁用 1:单元格 2:多单元格 3:单行 4:多行 5:多选行 MultiRange:列Ps:需关闭排序和拖动
            selectionMode: 5,
            // // 冻结行数
            // frozenRows: 2,
            // // 冻结列数
            // frozenColumns: 1,
            // // 数据分组方式 如无指定分组则报错
            // columnGroups: {},
            // 是否聚合 Ps:开启后 需要列设置allowMerging字段为true
            allowMerging: "Cells"
        },
        optionsBtn: click => ([
            {
                key: '0',
                type: 'group',
                label: '新增数据',
                children: [
                    { key: '0-1', label: <Button type='link' onClick={() => click('onAdded')}>新增数据</Button> },
                    { key: '0-2', label: <Button type='link' onClick={() => click('onRefresh')} >刷新数据</Button> },
                ],
            },
            {
                key: '1',
                type: 'group',
                label: '操作选中项',
                children: [
                    { key: '1-1', label: <Button type='link' onClick={() => click('onModify')}>修改选中数据</Button> },
                    { key: '1-2', label: <Button type='link' danger onClick={() => click('onDelete')}>删除选中数据</Button> },
                ],
            },
            {
                key: '2',
                type: 'group',
                label: '导出数据',
                children: [
                    { key: '2-1', label: <Button type='link' onClick={() => click('onSaveAct')}>导出选中数据</Button> },
                    { key: '2-2', label: <Button type='link' onClick={() => click('onSaveAll')}>导出全部数据</Button> },
                ],
            },
        ]),
        columns: [ // 字段设置
            {
                dataIndex: 'uuid',
                valueType: 'Hidden'
            },
            {
                title: '国家',
                dataIndex: 'country',
                rules: true,
                valueType: 'Select',
                valueEnum: { 0: '中国', 1: '朝鲜', 2: '韩国', 3: '俄罗斯', 4: '日本' },
                width: 240,
                align: 'center',
                // allowResizing: false,
                // allowDragging: false,
                // allowMerging: true
            },
            {
                title: '地区',
                dataIndex: 'product',
                rules: true,
                valueType: 'Select',
                valueEnum: { 0: '北京', 1: '上海', 2: '深圳', 3: '重庆', 4: '四川' },
                align: 'center',
                // allowMerging: true
            },
            {
                title: '时间',
                dataIndex: 'date',
                rules: true,
                valueType: 'DatePicker',
                format: 'yyyy/MM/dd',
                align: 'center',
            },
            {
                title: '状态',
                dataIndex: 'state',
                rules: true,
                valueType: 'Select',
                valueEnum: {
                    0: { text: '待领取...', status: 'default' },
                    1: { text: '解决中...', status: 'processing', disabled: true },
                    2: { text: '已解决!', status: 'success' },
                    3: { text: '警报中!', status: 'warning' },
                    4: { text: '无法解决!', status: 'error' },
                },
                align: 'center',
                tooltip: '信息提示!',
            },
            {
                title: '折扣',
                dataIndex: 'discount',
                valueType: 'InputNumber',
                align: 'center',
                format: 'p2',
            },
            {
                title: '下载量',
                dataIndex: 'downloads',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 1,
                format: 'n2',
                aggTitle: '总计下载'
            },
            {
                title: '销售量',
                dataIndex: 'sales',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 1,
                format: 'c2',
                aggTitle: '总计销售'
            },
            {
                title: '成本费',
                dataIndex: 'expenses',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 1,
                format: 'c2',
                aggTitle: '成本合计'
            },
            {
                title: 'No.1',
                dataIndex: 'num01',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 1,
                format: 'n2',
                aggTitle: '数值总和'
            },
            {
                title: 'No.2',
                dataIndex: 'num02',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 2,
                format: 'n2',
                aggTitle: '非空行数'
            },
            {
                title: 'No.3',
                dataIndex: 'num03',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 3,
                format: 'n2',
                aggTitle: '平均值'
            },
            {
                title: 'No.4',
                dataIndex: 'num04',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 4,
                format: 'n2',
                aggTitle: '最大值'
            },
            {
                title: 'No.5',
                dataIndex: 'num05',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 5,
                format: 'n2',
                aggTitle: '最小值'
            },
            {
                title: 'No.6',
                dataIndex: 'num06',
                valueType: 'InputNumber',
                align: 'center',
                aggregate: 6,
                format: 'n2',
                aggTitle: '数值差值'
            },
        ],
    })
}

export default A01;